package com.kaifamiao.helper;

import java.io.File;
import java.nio.charset.Charset;
import java.util.logging.Logger;

public class FileHelper {

    private static final Logger logger = Logger.getGlobal();

    public static void copy(File src, File dest){
        long start = System.nanoTime();

        // 在这里实现文件复制操作

        long end = System.nanoTime();
        long duration = end - start;
        logger.info( "复制文件用时 " + duration + " 纳秒。" );
    }

    /**
     * 将一个大文件依次序拆分为若干小文件
     * @param src 表示被拆分的大文件
     * @param size 表示被拆分后的小文件的体积限制
     * @param dir 表示拆分后的小文件的存放位置
     * @return 返回拆分后的小文件数目
     */
    public static int split( File src, long size , File dir ){

        return 0;
    }

    /**
     * 依次序读取指定目录中的众多小文件并将它们合并为一个大文件
     * @param dir 需要读取的小文件的存放目录
     * @param dest 合并之后的大文件
     * @return 返回合并之后的大文件的体积
     */
    public static long join( File dir, File dest ){

        return 0L;
    }

    /**
     * 将文件从原有的字符编码转化为另外一种字符编码
     * @param src 原始文件
     * @param srcCharset 原始文件的编码
     * @param dest 目标文件
     * @param destCharset 目标文件的编码
     */
    public static void transform(File src, Charset srcCharset, File dest, Charset destCharset) {

    }

    public static void toGBK(File src, Charset cs, File dest){
        transform( src, cs, dest, Charset.forName("GBK") );
    }

    public static void toUTF8(File src, Charset cs, File dest){
        transform( src, cs, dest, Charset.forName("UTF-8") );
    }

}
